package request

import "github.com/astaxie/beego/validation"

type StoreProductAttrValueRequest struct {
	Id           uint    `json:"id"`                              //商品ID|添加时为0，修改时为商品id
	ProductId    uint    `json:"productId" binding:"required"`    //商品ID
	Stock        int     `json:"stock" binding:"required"`        //库存
	Suk          string  `json:"suk"`                             //商品属性索引值 (attr_value|attr_value[|....])
	Price        float64 `json:"price" binding:"required"`        //现价
	Image        string  `json:"image" binding:"required"`        //商品图片
	Cost         float64 `json:"cost" binding:"required"`         //成本价
	OtPrice      float64 `json:"otPrice" binding:"required"`      //市场价
	Weight       float64 `json:"weight" binding:"required"`       //重量
	Volume       float64 `json:"volume" binding:"required"`       //体积
	Brokerage    float64 `json:"brokerage" binding:"required" `   //一级返佣
	BrokerageTwo float64 `json:"brokerageTwo" binding:"required"` //二级返佣
	AttrValue    string  `json:"attrValue"`                       //创建更新时的属性对应 example:"{"尺码":"2XL","颜色":"DX027白色"}"
	Quota        uint    `json:"quota"`                           //活动限购数量|活动商品专用字
	QuotaShow    uint    `json:"quotaShow"`                       //活动限购数量显示|活动商品专用字段,添加时不传

	// todo 当前未使用
	MinPrice float64 `json:"minPrice"` //砍价商品最低价|砍价专用
}

func (p *StoreProductAttrValueRequest) Valid(v *validation.Validation) {
	if p.Stock < 0 {
		v.SetError("Stock", "库存不能小于0")
	} else if p.Price < 0 {
		v.SetError("Price", "金额不能小于0")
	} else if p.Image == "" {
		v.SetError("Image", "商品规格属性图片不能为空")
	} else if p.Cost < 0 {
		v.SetError("Cost", "成本价不能小于0")
	} else if p.OtPrice < 0 {
		v.SetError("OtPrice", "原价不能小于0")
	} else if p.Weight < 0 {
		v.SetError("Weight", "重量不能小于0")
	} else if p.Volume < 0 {
		v.SetError("Volume", "体积不能小于0")
	} else if p.Brokerage < 0 {
		v.SetError("Brokerage", "一级返佣不能小于0")
	} else if p.BrokerageTwo < 0 {
		v.SetError("BrokerageTwo", "二级返佣不能小于0")
	} else if p.AttrValue == "" {
		v.SetError("AttrValue", "attr_values不能为空")
	}
}
